﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;

namespace OpenAuth.WebApi.Areas.HisApi.Controllers
{
    /// <summary>
    /// 
    /// </summary>
    [Route("HisApi/[controller]/[action]")]
    [ApiController] //在没有 [ApiController] 特性时,默认都是从 QueryString 获取参数来绑定.
    public class DefaultController : Controller
    {
        [HttpGet]
        public IActionResult Index()
        {
           
            return Content("index");
        }

        //1.viewresult类型-- 返回一个html页面 content-Type值 text/html;charset=utf-8 return view()
        //2.string类型-- 返回字符串hellocore content-type值为：text/plain;charset=utf-8; return "Hello Core";
        //3.json类型--{"code":"1001","name":"ASP"}Content-Type值为：Content-Type: application/json; charset=utf-8  return new JsonResult(new Book() { Code = "1001", Name = "ASP" });
        //4.直接返回实体类型  {"code":"1001","name":"ASP"}Content-Type值同样是：Content-Type: application/json; charset=utf-8  return new Book() { Code = "1001", Name = "ASP" };
        //5.void类型 没有返回结果也没有Content-Type值。
        //6.task类型 Task.Run(() => { }); 与void类型一样，没有返回结果也没有Content-Type值。
        //7.task<string>类型 await Task.Run(() => { rtn = "Hello Core"; });与string类型一样，返回字符串“Hello Core”，Content-Type值为：text/plain; charset=utf-8
        //8.Task<JsonResult> 类型 await Task.Run(() => { jsonResult = new JsonReContent-Type值为：Content-Type: application/json; charset=utf-8sult(new Book() { Code = "1001", Name = "ASP" }); });
        //还有其他类型，这里暂不列举了，总结一下：
        //1、返回结果有空、Html页面、普通字符串、JSON字符串几种。
        //2、对应的Content-Type类型有空、text/html、text/plain、application/json几种。
        //3、异步Action的返回结果，和其对应的同步Action返回结果类型一致。
    }

    //ASP.NET Core中可用的响应类型包括最近发布的2.2版本
    //具体类型的结果
    //IActionResult 当一个动作中有多个ActionResult返回类型时，IActionResult返回类型是合适的。这些类型代表各种HTTP状态代码。属于此类别的一些常见返回类型是BadRequestResult（400），NotFoundResult（404）和OkObjectResult（200）。
    //的ActionResult<T>
}